Health Cloud Clinical System API - Implementation Template
Field mapping
Condition
| FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes | 
|---|---|---|---|
| Identifier.use | Identifier | IdUsageType | The identifier information for a health condition is represented as Identifier records that reference the health condition record using their Identifier​.Parent​RecordId field. | 
| Identifier.system | Identifier | SourceSystem | |
| Identifier.value | Identifier | IdValue | |
| Identifier.type.coding.code | Identifier | IDTypeId | |
| clinicalStatus.coding.code | Health​Condition | ConditionStatus | While FHIR defines Condition​.clinical​Status as a code set bundle, the Salesforce implementation of Health​Condition​.Condition​Status is picklist. | 
| verificationStatus.codeing.code | Health​Condition | DiagnosticStatus | While FHIR defines condition​.verification​Status as a code set bundle, the Salesforce implementation of Health​Condition​.Diagnostic​Status is picklist. | 
| category.coding.code | Health​Condition | Type | While FHIR defines Condition​.category as a zero-to-many code set bundle, the Salesforce implementation of Health​Condition​.Categories is a zero-to-one picklist. | 
| severity.coding.code | Health​Condition | Severity | While FHIR defines condition​.severity as a code set bundle, the Salesforce implementation of Health​Condition​.Severity is picklist. | 
| code.coding.code | Health​Condition | ConditionCodeId | While FHIR defines condition​.code as a zero-to-one resource, the Salesforce implementation is a one-to-one field. | 
| bodySite.coding.code | Health​Condition | SiteId | Use this field if only one bodySite value is required for the condition. | 
| subject.reference | Health​Condition | PatientId | The Salesforce implementation of Condition​.subject doesn’t support groups. | 
| encounter.reference | Health​Condition | ClinicalEncounterId | |
| onset | A choice of more than one data types. | ||
| onset.onsetDateTime | Health​Condition | OnsetStartDateTime | |
| abatement | A choice of more than one data types. | ||
| abatement.abatementDateTime | Health​Condition | AbatementStartDateTime | Health​Condition​.Abatement​Start​Date​Time is used as both the equivalent of condition​.abatement​.abatement​Date​Time and the start date of condition​.abatement​.abatement​Period | 
| recordedDate | Health​Condition | RecordCreationDateTime | |
| recorder.reference | Health​Condition | RecordCreatorId | |
| asserter.reference | Health​Condition | AssertionSourceId | |
| stage.summary.coding.code | Health​Condition | StageId | The child resources of condition​.stage is combined into a single code set bundle reference field. While FHIR defines condition​.stage as a zero-to-many resource, the Salesforce implementation is a zero-to-one field. | 
AllergyIntolerance
| FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes | 
|---|---|---|---|
| Identifier.use | Identifier | IdUsageType | The identifier information for a health condition is represented as Identifier records that reference the health condition record using their Identifier.ParentRecordId field. | 
| Identifier.system | Identifier | SourceSystem | |
| Identifier.value | Identifier | IdValue | |
| Identifier.type.coding.code | Identifier | IDTypeId | |
| clinicalStatus.coding.system | AllergyIntolerance | While FHIR defines allergyIntolerance.clinicalStatus as a code set bundle, the Salesforce implementation of AllergyIntolerance.Status is picklist. | |
| verificationStatus.coding.code | AllergyIntolerance | VerificationStatus | While FHIR defines allergyIntolerance.verificationStatus as a code set bundle, the Salesforce implementation of AllergyIntolerance.VerificationStatus is picklist. | 
| type | AllergyIntolerance | Type | While FHIR defines allergyIntolerance.category as a code set bundle, the Salesforce implementation of AllergyIntolerance.Categories is a picklist. | 
| category | AllergyIntolerance | Category | While FHIR defines allergyIntolerance.category as a code set bundle, the Salesforce implementation of AllergyIntolerance.Category is a picklist. | 
| criticality | AllergyIntolerance | Severity | While FHIR defines allergyIntolerance.criticality as a code set bundle, the Salesforce implementation of AllergyIntolerance.Severity is picklist. | 
| code.coding.code | AllergyIntolerance | CodeId | |
| patient.reference | AllergyIntolerance | PatientId | |
| encounter.reference | AllergyIntolerance | ClinicalEncounterId | |
| onset. | A choice of more than one data types. | ||
| onset.onsetDateTime | AllergyIntolerance | OnsetStartDateTime | AllergyIntolerance.OnsetStartDateTime is used as both the equivalent of allergyIntolerance.onset.onsetDateTime and the start date of allergyIntolerance.onset.onsetPeriod | 
| recordedDate | AllergyIntolerance | RecordCreationDateTime | |
| recorder.reference | AllergyIntolerance | RecordCreatorId | |
| asserter.reference | AllergyIntolerance | AssertionSourceId | |
| lastOccurrence | AllergyIntolerance | LastOccurenceDateTime | |
| reaction | PatientHealthReaction | The reaction information for an allergy intolerance is represented as PatientHealthReaction records that reference the AllergyIntolerance record using their PatientHealthReaction.ParentId field. | |
| reaction.substance | PatientHealthReaction | ||
| reaction.substance.coding.code | PatientHealthReaction | CausativeSubstanceId | |
| reaction.manifestation.coding.code | PatientHealthReaction | ManifestedSymptomId | While FHIR defines allergyIntolerance.reaction.manifestation as a one-to-many resource, the Salesforce implementation of PatientHealthReaction.ManifestedSymptomId is zero-to-one. | 
| reaction.description | PatientHealthReaction | Details | |
| reaction.onset.onsetDateTime | PatientHealthReaction | ReactionDateTime | |
| reaction.severity | PatientHealthReaction | Severity | While FHIR defines allergyIntolerance.reaction.severity as a code set bundle, the Salesforce implementation of PatientHealthReaction.Severity is a picklist. | 
| reaction.exposureRoute.coding.code | PatientHealthReaction | ExposureRouteId | 
Procedure
| FHIR Field Name | Salesforce Object | Salesforce Field Name | Notes | 
|---|---|---|---|
| Identifier.use | Identifier | IdUsageType | The identifier information for a Procedure is represented as Identifier records that reference the PatientMedicalProcedure record using their Identifier.ParentRecordId field. | 
| Identifier.system | Identifier | SourceSystem | |
| Identifier.value | Identifier | IdValue | |
| Identifier.type.coding.code | Identifier | IDTypeId | |
| basedOn.reference | PatientMedicalProcedureDetail | DetailRecordId | For procedure.basedOn information, PatientMedicalProcedureDetail.DetailType must use the value Based On | 
| partOf.reference | PatientMedicalProcedureDetail | DetailRecordId | For procedure.partOf information, PatientMedicalProcedureDetail.DetailType must use the value Part Of | 
| status | PatientMedicalProcedure | Status | While FHIR defines procedure.status as a code set bundle, the Salesforce implementation of PatientMedicalProcedure.Status is picklist. | 
| statusReason.coding.code | PatientMedicalProcedure | StatusReasonCodeId | |
| category.coding.code | PatientMedicalProcedure | TypeId | |
| code.coding.code | PatientMedicalProcedure | CodeId | |
| subject.reference | PatientMedicalProcedure | PatientId | The Salesforce implementation of procedure.subject doesn’t support references to groups. | 
| encounter | PatientMedicalProcedure | ClinicalEncounterId | |
| performed.performedDateTime | PatientMedicalProcedure | StartDate | PatientMedicalProcedure.StartDate is used for both procedure.performed.performedDateTime and procedure.performed.performedPeriod. For the latter, the field is used to represent the start date of the period. | 
| recorder | PatientMedicalProcedure | RecordCreatorId | |
| asserter | PatientMedicalProcedure | AssertionSourceId | |
| performer | CarePerformer | The performer information for a Procedure is represented as CarePerformer records that reference the PatientMedicalProcedure record using their CarePerformer.ParentRecordId field. | |
| performer.function.coding.code | CarePerformer | RoleId | |
| performer.actor | CarePerformer | PersonId | The Salesforce implementation doesn’t support references to devices. | 
| performer.onBehalfOf | CarePerformer | AffiliatedOrganizationId | |
| location | PatientMedicalProcedure | FacilityId | |
| reasonCode | PatientMedicalProcedure | ||
| reasonCode.coding.code | PatientMedicalProcedure | ReasonCodeId | While FHIR defines procedure.reasonCode as a zero-to-many resource, the Salesforce implementation is zero-to-one | 
| reasonReference | PatientMedicalProcedure | ReasonReferenceId | While FHIR defines procedure.reasonCode as a zero-to-many resource, the Salesforce implementation is zero-to-one. The Salesforce implementation doesn’t support document reference records. | 
| bodySite | PatientMedicalProcedureDetail | The body site information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. | |
| bodySite.coding.code | PatientMedicalProcedureDetail | DetailCodeId | For procedure.bodySite information, PatientMedicalProcedureDetail.DetailCodeId must reference aCodeSet or CodeSetBundle record. | 
| outcome.coding.code | PatientMedicalProcedure | Outcome | While FHIR defines procedure.outcome as a code, the Salesforce implementation of PatientMedicalProcedure.Outcome is a picklist | 
| report | PatientMedicalProcedure | ReportId | While FHIR defines procedure.report as a zero-to-many resource, the Salesforce implementation is zero-to-one. The Salesforce implementation of procedure.report doesn’t support references to composition or document reference records. | 
| complication.coding.code | PatientMedicalProcedureDetail | DetailRecordId | For procedure.complication information, PatientMedicalProcedureDetail.DetailCodeId must reference aCodeSet or CodeSetBundle record. | 
| complicationDetail | PatientMedicalProcedureDetail | RecordId | For procedure.complicationDetail information, PatientMedicalProcedureDetail.DetailRecordId must reference a HealthCondition record. | 
| followUp | PatientMedicalProcedureDetail | The follow up information of a procedure is represented as PatientMedicalProcedureDetail records that reference the PatientMedicalProcedure record using their PatientMedicalProcedureDetail.PatientMedicalProcedureId field. | |
| followUp.coding.code | PatientMedicalProcedureDetail | DetailCodeId | For procedure.followUp information, PatientMedicalProcedureDetail.DetailCodeId must reference aCodeSet or CodeSetBundle record. |